//
//  Status.swift
//  SynWeibo
//
//  Created by 沈艳男 on 15/9/9.
//  Copyright © 2015年 沈艳男. All rights reserved.
//

import UIKit
/// 微博模型
class Status: NSObject {
    
    // MARK: - 模型属性
    /// 创建时间
    var created_at: String?
    /// 微博ID
    var id: Int = 0
    /// 微博信息内容
    var text: String?
    /// 微博来源
    var source: String?
    
    /// 配图数组
    var pic_urls: [[String: String]]?
    
    /// 用户模型，如果直接是用KVC，会变成字典
    var user: User?
    /// 实例化一个记录被装法的微博
    var retweeted_status: Status?
    
    // MARK: - 构造函数
    init(dict: [String: AnyObject]) {
        super.init()
        setValuesForKeysWithDictionary(dict)
    }
    
    override func setValue(value: AnyObject?, forKey key: String) {
        // 1、判断key是否是User
        if key == "user" {
            // 如果key是User value是字典
            // 调用User的构造函数创建user对象属性
            user = User(dict: value as! [String: AnyObject])
//            printLog("***********\(user)")
            
            // 如果不是就 return user 会被默认的KVC方法，设置成字典
            return
        }
        
        // 2、转发微博
        if key == "retweeted_status" {
            retweeted_status = Status(dict: value as! [String: AnyObject])
            return
        }
        super.setValue(value, forKey: key)
    }
    
    
    override func setValue(value: AnyObject?, forUndefinedKey key: String) {
        
    }
    
    
    override var description: String {
        let key = ["created_at", "id", "text", "source", "pic_urls", "user", "retweeted_status"]
        return dictionaryWithValuesForKeys(key).description
    }
}
